The present invention relates to presenting computer program application controls in a user interface.
Many conventional computer program applications provide for user interaction through a graphical user interface. To make the application's controls easily accessible to users, such applications typically provide a number of different user interface elements, such as toolbars, pull-down menus, dialog boxes, and floating palettes, with which the user can invoke commands, retrieve operations, and the like.
Toolbars typically feature an arrangement of interactive buttons that can be selected to invoke particular operations, and are typically arranged along an edge of an application window of the user interface. Pull-down menus are typically lists of commands that can be hidden and activated or pulled down with a pointing or cursor control device, such as a mouse or trackball, or a keyboard command. These single-word commands take up very little of the screen because the pull-down menu, in its collapsed state, has a very compact form, such as a single command word. Dialog boxes are interface elements that are typically composed of rectangular regions that appear outside of the document window. Dialog boxes are typically “modal” elements, which means that while a dialog box is active, action within the document is usually halted while the user is requested to select one or more of a number of options identified within the dialog box. The dialog box is then dismissed and disappears, and the document is updated based upon the selection that the user made from the dialog box.
By contrast, a floating palette (or simply a “palette” or “control palette”) is a window that is subsidiary to the main application window and contains commands or tools that are used in an interactive fashion. For the purposes of this specification, a floating palette is a window that “floats” above any open document window, meaning that it remains “on top” of the document window, even when the palette is not the current focus. It should be noted that a palette is considered to be “on top” of an underlying document window if it appears directly over all or a portion of the underlying document window, or, if it does not appear over any portion of the document window (for example, if it appears to the side of a document window), if it would appear on top of the document window if either the palette or document window were moved so that the two overlap. As opposed to dialog boxes, floating palettes are “non-modal”. This means that, unlike in modal elements, actions occurring within the document are not halted while the palettes are accessed by the user. Accordingly, floating palettes are most useful for holding tools and commands that a user needs to access interactively at the same time with the document itself.
Conventional applications often provide for a number of different control palettes, and often palettes provide the most convenient, or even the only, way to access some control features of the application. Palettes can sometimes be grouped or docked to provide for convenient access to functions that are frequently used together, such as in a workflow. Leaving multiple palettes or palette groups open on the desktop can consume valuable screen real estate, which can result in obscuring portions of a document being manipulated in the application. To avoid this, users can close any palettes or groups that are not being actively used, but to reopen those palettes or groups can require the user to invoke a sometimes complicated series of keystrokes, mouse movements or commands to reopen and reactivate the palettes if their functionality is later desired.